Skip to content

core: record item source spans in CellItem#6

Merged
shigarov merged 1 commit into
mainfrom
cellitem-spans
Jul 12, 2026
Merged

core: record item source spans in CellItem#6
shigarov merged 1 commit into
mainfrom
cellitem-spans

Conversation

@shigarov

Copy link
Copy Markdown
Contributor

CellItem (and its Python mirror CellDerivedItem) now carries span — the byte range of the item's source segment within the raw cell text, before extractors:

  • atomic content → the whole cell text;
  • delimited / compound segments → the offsets the matcher already computed while splitting (pos/end_pos), adjusted for java_trim.

Matching semantics are unchanged — the full pytest suite (1908) passes; item_index numbering is preserved exactly (delimited: original part position incl. empty parts; compound: running index over non-empty parts).

Enables per-item highlighting in the vscode-rtl match preview (its plan §3.2 p. 5, §5.4 pp. 2–3).

🤖 Generated with Claude Code

CellItem (and its Python mirror CellDerivedItem) now carries `span` — the
byte range of the item's source segment within the raw cell text, before
extractors: atomic content spans the whole text; delimited and compound
segments keep the offsets the matcher already computed while splitting
(adjusted for java_trim). Matching semantics are unchanged (pytest: 1908).

Enables per-item highlighting in the vscode-rtl match preview
(vscode-rtl plan §3.2 p. 5, §5.4).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@shigarov
shigarov merged commit 02ff26d into main Jul 12, 2026
8 checks passed
@shigarov
shigarov deleted the cellitem-spans branch July 12, 2026 14:03
shigarov added a commit to regtab/vscode-rtl that referenced this pull request Jul 12, 2026
…ined)

Granularity changes from cells to cell-derived items: rtl/matchFixture now
returns index, extracted string, tags and span (source segment range in the
raw cell text, code-point units) per item, and the webview highlights those
ranges inside the original cell text — a mixed cell [ATTR ":" VAL] shows a
blue attribute segment and a green value segment with the delimiter dimmed.
Segment tooltips carry role, tags and the extracted string.

Uses the new CellItem.span from the pyregtab core (regtab/pyregtab#6, which
this refinement added to plan §3.2 as item 5). Verified over stdio: compound,
mixed-role and Cyrillic (byte→code-point conversion) cells.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant